<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>数值的扩展</title>
</head>
<body>
<script>
    // 1. Number.EPSILON 是 JavaScript 表示的最小的精度
    //      EPSILON属性的值接近  2.2204460492503130808472633361816E-16
    console.log(0.1 + 0.2 === 0.3)//等于0.3000000000000004  所以 0.1 + 0.2!= 0.3
    function equal(num1, num2) {
        return Math.abs(num1 - num2) < Number.EPSILON;
    }

    let result = equal(0.1 + 0.2, 0.3)
    console.log(result)


    // 2. 二进制和八进制
    let b=0b1010;//表示二进制
    console.log(b)//输出结果为十进制
    let o=0o777;//表示八进制
    console.log(o)//输出结果为十进制
    let d=100;//表示十进制
    console.log(d)//输出结果为十进制
    let x=0xff;//表示十六进制
    console.log(x)//输出结果为十进制

    // 3. Number.isFinite 检测一个数值是否是一个有限数
    console.log(Number.isFinite(11))
    console.log(Number.isFinite(11/0))
    console.log(11/0)//Infinity -- 无穷

    // 4. Number.isNaN  检测一个数值是否是一个NaN
    console.log(Number.isNaN(123))
    console.log(Number.isNaN(NaN))

    // 5. Number.parseInt Number.parseFloat  将字符串转换为整数
    console.log(Number.parseInt('156sdf'))
    console.log(Number.parseInt('1.56sdf等'))

    // 6.Number.isInteger  判断一个数是否为整数
    console.log(Number.isInteger(545))
    console.log(Number.isInteger(54.5))

    // 7. Math.trunc Math.floor 将数字的小数部分抹掉（向下取整）
    console.log(Math.trunc(2.54))
    console.log(Math.floor(2.54))

    // 8. Math.sign  判断一个数是 正数 负数 还是 零
    console.log(Math.sign(23.1))
    console.log(Math.sign(-23.1))
    console.log(Math.sign(0))
</script>
</body>
</html>